home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 28
/
Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso
/
Aminet
/
dev
/
c
/
dice-3.16.lha
/
doc
/
dcc.doc
< prev
next >
Wrap
Text File
|
1994-02-13
|
33KB
|
843 lines
dcc/dcc dcc/dcc
DCC.DOC
Matthew Dillon
891 Regal Rd.
Berkeley, Ca. 94708
USA
dillon@overload.Berkeley.CA.US --or--
uunet.uu.net!overload!dillon
BIX: mdillon
DCC <options and files>
NOTE: new this version, use of single precision IEEE libraries for
floating point. Please read the note under the option '-ffp' for
more information.
DCC is similar to the UNIX 'cc' command and is the frontend for the
DICE compiler. For best performance I strongly suggest that you make
DCC, DC1, DCPP, DAS, and DLINK resident. If you do not have enough
memory to do so you at least want to leave the largest programs, DC1
and DAS resident. It is suggested that your machine have at least 1MB
of memory. A compile or link can take as much as 400K of run-time
memory.
Options may occur anywhere on the command line but MUST occur singly.
That is, -c -a instead of -ca. file arguments to options may occur
with or without an intervening space. -oFILE and -o FILE are both legal.
Files ending in .a[sm] are assumed to be assembly files. Files ending
in .l[ib] are assumed to be library files. Files ending in .o[bj] are
assumed to be object files. All other files are assumed to be C source
files.
Normally DCC compiles all C source files, assembles all .a[sm] files,
and links the resulting object files with any specified .o files
together to produce an executable. The output file may optionally be
specified with the -o option. If not specified, a default output
filename based on the name of the input file is generated. This
general action is modified by two options:
-c DCC does NOT link, -o specifies the output object file
-a DCC does NOT assemble (i.e. leaves the .a file resulting from
a compile). -o specifies the output assembly file
If neither option is given -o specifies the name of the resulting
executable.
The default object directory is T: and may be changed with the -O option.
The default temporary directory is also T: and may be changed with the -T
option. IF YOU HAVE LIMITED MEMORY you may have to specify that
temporary files not be placed in T: either by re-assigning T: or using
the -T option. DICE goes much slower if temporary files must be written
to a floppy or even a hard disk.
WARNING: .a[sm] files are assembled with DAS, read DAS.DOC if you
intend to assemble non-DC1 generated assembly.
------------------- OPTIONS ------------------
file File to compile, assemble (.a), and/or link (.o, .lib)
@file File containing further list of files, one per line.
(blank lines and lines beginning with ';' or '#' are
ignored. File may NOT contain further options).
-E file specify stderr file, any errors are appended to the file
instead of to stdout. Useful for batch compiles
-c Compile C source files and assemble into OBJECT files
only (do not link).
-a Compile C source files into ASSEMBLY files (do not assemble
or link).
Keep in mind the DAS will do further optimizations on the
assembly file that you see.
-l0 Do not link default libraries (dlib:c.lib dlib:amigas.lib
dlib:auto.lib), or standard startup (dlib:c.o and
dlib:x.o).
BEGINNER'S NOTE: Do not use this option
This option is used in special circumstances, such as when
generating .libraries or .devices.
WARNING: DICE is much more dependant on its startup code
(c.o and x.o) than other compilers, do not link without
the startup unless you know what you are doing.
-l lib When linking include this library. (space is optional)
Generally -l is used to include the math library (-lm)
when formatted floating point *printf()s are required.
Refer to the section 'MODELS AND LIBRARIES' and 'CREATING
YOUR OWN LIBRARIES' below for more information on linking
in custom libraries.
-2.0 Default amiga.lib is dlib:amigas20.lib
Default amiga include path is dinclude:amiga20/
-2.x where 'x' is the second digit replacing the '0' in the
above example. This option is useful when compiling for
different versions of the operating system.
-1.3 Like -2.0, but using dlib:amigas13.lib and dinclude:amiga13/
Again, -1.x may be specified.
-L0 remove default library search path, including all explicitly
specified (-L dir) directories up to this point.
-L dir add the specified directory to the library search path. If
the object module or library can not be found in the
current directory, directories specified with -L are
searched. -L directories are searched before the default
library directory (DLIB:), assuming it was not removed
with -L0 .
Note that the directory path specified by -L is used to
search for libraries AND object modules.
A trailing '/' is optional
-I0 remove default include path from search list. The default
include path is dinclude: and dinclude:amiga/ (unless
modified by -1.x and -2.x options)
-I dir When compiling scan this include directory (space is
optional) The specified path takes precedence over defaults
but defaults are NOT removed.
-D define[=value]
Pre-define a symbol
-U undefine __STDC__, mc68000, _DCC, and AMIGA.
BEGINNER'S NOTE: Do not use any of these options
-H<outfile>=<hdrfile>
This option enables precompiled header file generation and
operation. You may specify any number of -H options. Example
usage:
-Ht:defs.m=defs.h
When DICE encounters an #include <defs.h> this will cause it to
first check for the existance of T:DEFS.M ... if T:DEFS.M does
not exist DICE will generate it from <defs.h>. if T:DEFS.M
does exist then DICE will use it directly and ignore <defs.h>
You must specify the -H option both to have DICE create the
precompiled header file and to have DICE use the precompiled
header file. Normally one makes operation as transparent as
possible so as not depend on the option existing when porting
to other enviroments.
WARNING WARNING WILL ROBINSON! A precompiled header file contains
the preprocessed header and preprocessor macros. These are set in
stone! If you modify a #define that would normally effect
preprocessing of a header file which is precompiled THE EFFECT WILL
NOT OCCUR. It is strongly suggested you use precompiled headers
ONLY with includes that are pretty much unchanging. For example,
the commodore includes or otherwise have an appropriate dependancy
in your DMakefile or make script to delete the precompiled header
file whenever any of your headers are modified.
Normally one has a single -H option that enables precompiling of a
local header file, say DEFS.H, which contains #include's of all
other header files. Source modules would then #include <defs.h>
BEGINNERS'S NOTE: Do not use this option
-o file Specify output executable, object, or assembly file name
depending on what you are producing. The space is optional
-020 generate code for the 68020 and later microprocessors
-030 generate code for the 68030 and later microprocessors
-881 generate inline FFP code for the 68881
-882 generate inline FFP code for the 68882
BEGINNER'S NOTE: Do not use any of these options
These options exist to produce 020 and 030 opcodes, and 881/882
inline assembly for floating point operations. They are not
necessarily implemented yet. The intent is to implement them
by V2.06 .
-md small data model (default) uses A4-relative
-mD large data model uses absolute-long
-mc small code model (default) uses PC-relative
-mC large code model uses absolute-long
BEGINNER'S NOTE: Use only -mD if you declare more than
64KBytes of data.
These options specify the default data and code model to use.
The model may be overriden by use of the __near and __far
type qualifiers (see EXTENSIONS.DOC) on a variable by variable
basis.
DICE defaults to the small data and small code model, and is able
to generate >32KBytes of code using the small code model so you
should never have to use -mC. Note tha